/*
 * ImagenJson.h
 *      Author: sebastian
 */

#ifndef IMAGENJSON_H_
#define IMAGENJSON_H_
#include "Jsonizable.h"
#include <fstream>
#include <sstream>
#include <gtkmm.h>
#include <string.h>

class ImagenJson {
private:
	Json::Value imagen;
	size_t tamanio;
public:

	ImagenJson();

	//Dado un path, convierte a Json el archivo, 0 = Ok, 1 = Error.
	int armarJson(std::string path);

	//Devuleve el json de la imagen.
	Json::Value& getJsonImagen();

	//Devuelve un puntero a una tira de bytes que es la imagen.
	//El usuario que la utiliza sera responsable de liberar la memoria.
	char* getImagen();

	//Crea un archivo cuyo nombre es el string que se le pasa como parámetro
	//con la imagen que hay en el Json
	void getImagenToPath(const std::string& );

	//Dado un json, se setea como imagen.
	void setJson(Json::Value& root);

	//Devuelve el tamanio de la imagen en bytes.
	unsigned int getTamanio();

	~ImagenJson(){};
};

#endif /* IMAGENJSON_H_ */
